Julia - Vizuelizacija podataka - iscrtavanje geometrijskih oblika, boje

In [2]:
using Plots
In [2]:
# Crtanje parametarskih krivih

#Crtanje parametarskih krivih može se obaviti na veoma jednostavan način - kako je x = x(t), y = y(t) u 2D prostoru
#odnosno x = x(t), y = y(t), z = z(t) u 3D prostoru, to je dovoljno proslediti vektor parametara t za obe koordinate
#i plot funkciji proslediti odgovarajuće koordinate kao argumente i vrednosti funkcije

t = range(-π, π, length = 1000); #prva vrednost koju prosleđujemoje poč. vr. parametra t, druga vrednost
                       #predstavlja njegovu krajnju vrednost, a trećiu argument predstavlja dužinu niza tj. u koliko 
                      #ekvidistantnih tačaka vršimo deljenje ovog intervala
plot(2*sin.(t), cos.(t), title = "Elipsa", lw = 3)
Out[2]:
In [3]:
#Sada ćemo prikazati kako se crta 3D plot krive:

t = range(-4*π, 4*π, length = 1000);
plot(2*sin.(t), cos.(t), t,title = "Spirala", lw = 3) #prve dva niza su x i y koordinata, a treći je z koordinata
Out[3]:
In [4]:
#Sada ćemo dati prikaz kako se vrši iscrtavanje površi - za to su nam potrebna dve promenljive x i y, i treća, y z
#koordinata 

#Za to će nam biti potrebna funkcija surface(), koja se nalazi u paketu PyPlot, koji ćemo sad instalirati:
In [5]:
u = range(-5, 5, length = 1000);
v = range(-5, 5, length = 1000);
f(x, y) = x.^2 + y.^2;   #moramo napraviti generičku funkciju
surface(u, v, f, title = "Parabola" )
Out[5]:
In [6]:
# Što se tiče plotovanja, postoji i mogućnost plotovanja tzv. heatmap-a - to je svojevrsna vrsta grafika koja 
# funkciju sa dva argumenta ne iscrtava, već daje u ravni prikaz njenih intenziteta u odnovarajućim tačkama

#Boje su tačno uparene sa vrednostima na skali, a na skali su date intenziteti vrednosti funkcije
# koje funkcija uzima u ovom opsegu

heatmap(u, v, f, c = :thermal)
Out[6]:
In [7]:
#Naravno, moguće je zadavati i druge opcije za iscrtavanje itenziteta nasih funkcija u pogledu boja

heatmap(u, v, f, c = :cool)
Out[7]:
In [27]:
#heatmap moguće je i koristiti za prikaz višedimenzionih funkcija - tada se funkcije izdvajaju po vrstama!

x = randn(10, 1000);
heatmap(x)
Out[27]:
In [28]:
y = rand(10, 1000);
heatmap(y)
Out[28]:
In [35]:
#heatmap-e se takođe koriste i u prikazivanju statističkih parametara (npr. koeficijenata korelacije)
using Statistics
y1 = randn(1,1000);
y2 = randn(1,1000);
y3 = randn(1,1000);
y4 = randn(1,1000);
y5 = randn(1,1000);
y = [y1; y2; y3; y4; y5]';
R = cor(y); #Racunanje kovarijacione matrice
heatmap(R)
Out[35]:
In [7]:
#Za kraj, daćemo prikaz plotovanja funkcija sa već predefinisanim, specijalizovanim setovima boja za plotovanje (od
#naučnih do raznoraznih)

plot([x -> (2*x - a) for a in range(1, 5, length = 5)], 0, 5;palette = :ocean) #gnuplot
Out[7]:
In [8]:
plot([x -> (2*x - a) for a in range(1, 5, length = 5)], 0, 5;palette = :deep) #matplotlib
Out[8]:
In [9]:
plot([x -> (2*x - a) for a in range(1, 5, length = 5)], 0, 5;palette = :vik) #scientific
Out[9]:
In [ ]: